package com.shoulder.boot.acl.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.shoulder.boot.acl.dto.M2rDTO;
import com.shoulder.boot.acl.dto.RoleAddDTO;
import com.shoulder.boot.acl.dto.RoleModDTO;
import com.shoulder.boot.acl.dto.RoleQueryDTO;
import com.shoulder.boot.acl.entity.Role;
import com.shoulder.boot.acl.vo.RoleVo;
import com.shoulder.core.api.Kv;
import com.shoulder.core.fetch.BaseIds;

import java.util.List;

/**
* 角色信息 服务类
*
* @author 596767880@qq.com
* @since 2024-03-14 11:56:27
*/
public interface RoleService extends IService<Role> {

    RoleVo look(String id);

    List<RoleVo> looks(BaseIds<String> baseIds);

    void del(String id);

    void batchDel(BaseIds<String> baseIds);

    List<RoleVo> listQuery(RoleQueryDTO queryDTO);

    Page<RoleVo> pageQuery(RoleQueryDTO queryDTO);

    void mod(RoleModDTO modDTO);

    void add(RoleAddDTO addDTO);

    void switchRole(String id);

    void m2r(M2rDTO m2rDTO);

    List<String> roleMenus(String id);

    List<Role> tenantRoles();

    List<Kv> scopeEnums();
}